home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume90 / util / ftos < prev    next >
Encoding:
Text File  |  1990-03-15  |  18.2 KB  |  442 lines

  1. Path: xanth!cs.odu.edu!Amiga-Request
  2. From: Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator)
  3. Newsgroups: comp.sources.amiga
  4. Subject: v90i114: FTOS - convert DAsm assembler output to Motorola S-Records, Part01/01
  5. Message-ID: <11804@xanth.cs.odu.edu>
  6. Date: 15 Mar 90 01:35:16 GMT
  7. Sender: tadguy@cs.odu.edu
  8. Reply-To: salan@ub.d.umn.edu (Salim !!)
  9. Lines: 428
  10. Approved: tadguy@cs.odu.edu (Tad Guy)
  11. X-Mail-Submissions-To: Amiga@cs.odu.edu
  12. X-Post-Discussions-To: comp.sys.amiga
  13.  
  14. Submitted-by: salan@ub.d.umn.edu (Salim !!)
  15. Posting-number: Volume 90, Issue 114
  16. Archive-name: util/ftos
  17.  
  18. [ uuencoded binary enclosed.  ...tad ]
  19.  
  20. Convert DAsm assembler output to Motorolla S-Record format
  21. so that it can be downloaded to an EVB (Evaluation Board).
  22.  
  23. #!/bin/sh
  24. # This is a shell archive.  Remove anything before this line, then unpack
  25. # it by saving it into a file and typing "sh file".  To overwrite existing
  26. # files, type "sh file -c".  You can also feed this as standard input via
  27. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  28. # will see the following message at the end:
  29. #        "End of archive 1 (of 1)."
  30. # Contents:  ftos.c ftos.doc ftos.uu
  31. # Wrapped by tadguy@xanth on Wed Mar 14 20:34:46 1990
  32. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  33. if test -f 'ftos.c' -a "${1}" != "-c" ; then 
  34.   echo shar: Will not clobber existing file \"'ftos.c'\"
  35. else
  36. echo shar: Extracting \"'ftos.c'\" \(2885 characters\)
  37. sed "s/^X//" >'ftos.c' <<'END_OF_FILE'
  38. X/********************************************************************
  39. X*
  40. X* FTOC V1.0                                  Salim Alam: 90.02.08
  41. X*
  42. X* Converts assembler output from DASM to Motorola S Record format.
  43. X* The code should have been assembled using the -f2 option.  The
  44. X* processor should be defined as 68HC11.
  45. X*
  46. X* Usage:
  47. X*
  48. X* ftoc <infile> [outfile]
  49. X*
  50. X* where "infile" is the filename of the assembler output, and
  51. X* "outfile" is the name of the file to which the S record will
  52. X* be output.
  53. X*
  54. X* If outfile is not specified, "out.s" will be used for the
  55. X* output file.
  56. X*
  57. X*********************************************************************/
  58. X
  59. X#include <stdio.h>
  60. X#include <ctype.h>
  61. X#include <libraries/dos.h>
  62. X#include <libraries/dosextens.h>
  63. X
  64. Xmain(argc,argv)
  65. Xint argc;
  66. Xchar *argv[];
  67. X{
  68. X
  69. X   char infilename[100],outfilename[100];
  70. X   struct FileHandle *infile;
  71. X   FILE *outfile;
  72. X   unsigned short Org, Len, CurrAdd, ToGo;
  73. X   unsigned char  CheckSum, RLen;
  74. X   unsigned char buffer[100];
  75. X   int blen, i;
  76. X
  77. X
  78. X   /* Check args */
  79. X
  80. X   if ((argc < 2) || (argc > 3)) {
  81. X       printf("Usage: ftoc <infile> [outfile]\n");
  82. X       exit(10);
  83. X   };
  84. X
  85. X   strcpy(infilename,argv[1]);
  86. X   if (argc==3) 
  87. X     strcpy(outfilename,argv[2]);
  88. X   else
  89. X     strcpy(outfilename,"out.s");
  90. X
  91. X
  92. X
  93. X   /* Open files */
  94. X
  95. X   if ( (infile=Open(infilename,MODE_OLDFILE)) == 0L) {
  96. X      printf("Unable to open input file '%s'\n",infilename);
  97. X      exit(5);
  98. X   };
  99. X
  100. X   if ( (outfile=fopen(outfilename,"w")) == 0L) {
  101. X      printf("Unable to open output file '%s'\n",outfilename);
  102. X      exit(5);
  103. X   };
  104. X
  105. X
  106. X
  107. X   /* Main loop */
  108. X
  109. X   fprintf(outfile,"S00600004844521B\n");
  110. X
  111. X   for (;;) {
  112. X     blen=Read(infile,buffer,4);
  113. X     if (blen != 4) break;  /* Exit if EOF */
  114. X
  115. X     Org = CurrAdd = (buffer[0]+(256*buffer[1]));
  116. X     Len = ToGo    = (buffer[2]+(256*buffer[3]));
  117. X
  118. X     while (ToGo > 0) {  /* Process a line */
  119. X        RLen = (ToGo > 16)? 16 : ToGo;
  120. X        ToGo -= RLen;
  121. X        blen=Read(infile,buffer,RLen);
  122. X        CheckSum = RLen+3+HexAdd(CurrAdd);
  123. X        fprintf(outfile,"S1");
  124. X        PrintHex(outfile,(RLen + 3));
  125. X        PrintHex(outfile,CurrAdd / 256);
  126. X        PrintHex(outfile,CurrAdd % 256);
  127. X        for (i=0; i < RLen; i++) {
  128. X          PrintHex(outfile,buffer[i]);
  129. X            CheckSum += buffer[i];
  130. X        };
  131. X        CheckSum = ~CheckSum;
  132. X        PrintHex(outfile,CheckSum);
  133. X        fprintf(outfile,"\n");
  134. X        CurrAdd += RLen;
  135. X     }; /* while */
  136. X
  137. X   }; /* for */
  138. X
  139. X
  140. X   /* Clean up & exit */
  141. X
  142. X   fprintf(outfile,"S9030000FC\n");
  143. X
  144. X   Close(infile);
  145. X   fclose(outfile);
  146. X
  147. X} /* main */
  148. X
  149. X
  150. X
  151. XPrintHex(fp,num)
  152. XFILE *fp;
  153. Xunsigned char num;
  154. X{
  155. X
  156. X  unsigned char hi,lo;
  157. X  static char *hexmap[] = {'0','1','2','3','4','5','6','7',
  158. X                           '8','9','A','B','C','D','E','F'};
  159. X  hi = num / 16;
  160. X  lo = num % 16;
  161. X
  162. X  fprintf(fp,"%c%c",hexmap[hi],hexmap[lo]);
  163. X
  164. X}
  165. X
  166. X
  167. X
  168. XHexAdd(wnum)
  169. Xunsigned short wnum;
  170. X{
  171. X
  172. X   int hi,lo;
  173. X
  174. X   hi = wnum / 256;
  175. X   lo = wnum % 256;
  176. X
  177. X   return(lo+hi);
  178. X
  179. X}
  180. X
  181. END_OF_FILE
  182. if test 2885 -ne `wc -c <'ftos.c'`; then
  183.     echo shar: \"'ftos.c'\" unpacked with wrong size!
  184. fi
  185. # end of 'ftos.c'
  186. fi
  187. if test -f 'ftos.doc' -a "${1}" != "-c" ; then 
  188.   echo shar: Will not clobber existing file \"'ftos.doc'\"
  189. else
  190. echo shar: Extracting \"'ftos.doc'\" \(666 characters\)
  191. sed "s/^X//" >'ftos.doc' <<'END_OF_FILE'
  192. X
  193. XFTOS : DAsm Assembler Output -> Motorola S Format
  194. X----   ------------------------------------------
  195. X
  196. XThis program converts assembler output from Matt Dillon's DAsm
  197. Xprogram to Motorola S Format so that it can be downloaded to 
  198. XEvaluation Boards (EVBs).
  199. X
  200. XI am using DAsm to write code for the 68HC11, and download it
  201. Xto a 68HC11EVB.  This program is needed since the EVB download
  202. Xsoftware requires Motorola S Format records.
  203. X
  204. XThis program is public-domain.  The source (Manx) and binary
  205. Xis included with this distribution.
  206. X
  207. X         /--------------------------------\
  208. X********* THANK YOU, MATT DILLON, FOR DASM **********
  209. X         \--------------------------------/
  210. X
  211. END_OF_FILE
  212. if test 666 -ne `wc -c <'ftos.doc'`; then
  213.     echo shar: \"'ftos.doc'\" unpacked with wrong size!
  214. fi
  215. # end of 'ftos.doc'
  216. fi
  217. if test -f 'ftos.uu' -a "${1}" != "-c" ; then 
  218.   echo shar: Will not clobber existing file \"'ftos.uu'\"
  219. else
  220. echo shar: Extracting \"'ftos.uu'\" \(11887 characters\)
  221. sed "s/^X//" >'ftos.uu' <<'END_OF_FILE'
  222. Xbegin 664 ftos
  223. XM```#\P`````````#``````````(```9R````M@```!0```/I```&<D[Z!,).]
  224. XM5?ZZ2.<P``RM`````@`(;0H,K0````,`"&\82'H"@$ZY```+NEA/2'@`"DZYY
  225. XM```63%A/(&T`#"\H``1(;?^<3KD```K@4$\,K0````,`"&86(&T`#"\H``A(=
  226. XM;?\X3KD```K@4$]@$$AZ`E1(;?\X3KD```K@4$](>`/M2&W_G$ZY```8A%!/Z
  227. XM*T#_-&8<2&W_G$AZ`C!.N0``"[I03TAX``5.N0``%DQ83TAZ`CA(;?\X3KD`3
  228. XM``/$4$\K0/\P9AQ(;?\X2'H"($ZY```+NE!/2'@`!4ZY```63%A/2'H"*2\M;
  229. XM_S!.N0``!'103TAX``1(;?["+RW_-$ZY```8I$_O``PK0/Z^#*T````$_KYFH
  230. XM``%><``0+?[#X8!R`!(M_L+0@3M`_RH[0/\N<``0+?[%X8!R`!(M_L30@3M`,
  231. XM_R@[0/\L2FW_*&,``2(,;0`0_RAC!'`08`9P`#`M_R@;0/\F<``0+?\FD6W_Q
  232. XM*'``$"W_)B\`2&W^PB\M_S1.N0``&*1/[P`,*T#^OG``,"W_*B\`3KH!^EA/P
  233. XM<@`2+?\FT(%6@!M`_R=(>@%S+RW_,$ZY```$=%!/<``0+?\F5H`O`"\M_S!.-
  234. XMN@%F4$]P`#`M_RK@B"\`+RW_,$ZZ`5)03W``,"W_*L"\````_R\`+RW_,$ZZ%
  235. XM`3I03T*M_KI@+B`M_KI![?["<@`2,`@`+P$O+?\P3KH!&E!/("W^ND'M_L(2`
  236. XM,`@`TRW_)U*M_KIP`!`M_R8B+?ZZLH!EQ$8M_R=P`!`M_R<O`"\M_S!.N@#B9
  237. XM4$](>@#.+RW_,$ZY```$=%!/<``0+?\FT6W_*F``_MI@`/Z`2'H`KB\M_S!.P
  238. XMN0``!'103R\M_S1.N0``&")83R\M_S!.N0``$7I83TS?``Q.74YU57-A9V4Z?
  239. XM(&9T;V,@/&EN9FEL93X@6V]U=&9I;&5="@!O=70N<P!5;F%B;&4@=&\@;W!EN
  240. XM;B!I;G!U="!F:6QE("<E<R<*`'<`56YA8FQE('1O(&]P96X@;W5T<'5T(&9IQ
  241. XM;&4@)R5S)PH`4S`P-C`P,#`T.#0T-3(Q0@H`4S$`"@!3.3`S,#`P,$9#"@!.@
  242. XM5?_^2.<P`!`M``_H"!M`__\0+0`/P#P`#QM`__YP`!`M__[E@$'Y`````"\P=
  243. XM"`!R`!(M___E@4/Y`````"\Q&`!(>@`8+RT`"$ZY```$=$_O`!!,WP`,3EU.,
  244. XM=25C)6,``$Y5__A(YS``<``P+0`*X(@K0/_\<``P+0`*P+P```#_*T#_^"`MD
  245. XM__C0K?_\3-\`#$Y=3G5.50``2.<P($ZY```3`B1`2H!F"G``3-\$#$Y=3G4OX
  246. XM"B\M``PO+0`(809/[P`,8.9.50``2.<X("\M`!!.N0``$7I83T'Y````0"1("
  247. XM2A)F%"/\````!0````AP`$S?!!Q.74YU+RT`#"\*3KD```JP4$]*@&<$4(I@;
  248. XMTB\J``0O+0`(3KD```D`4$\H`+"\_____V8$<`!@Q"!M`!`11``-(&T`$!%\Y
  249. XM``$`#"`M`!!@K$Y5``!(YS``(^T`"`````!(;0`0+RT`#$AZ`!1.N0``#&Y/C
  250. XM[P`,3-\`#$Y=3G5.50``2.<P`"\Y`````"\M``A.N0``$+903TS?``Q.74YU_
  251. XM87Q#^0```MA%^0````"UR68.,CP`$VL(=``BPE')__PCSP````PL>``$(\X`;
  252. XM```02.>`@`@N``0!*6<02_H`"$ZN_^)@!D*G\U].<T/Z`"1.KOYH(\`````4@
  253. XM9@PN/``#@`=.KO^48`9.N0``!4I03TYU9&]S+FQI8G)A<GD`2?D``'_^3G5.,
  254. XM50``2.<P($AY``$``#`Y```"U,'\``8O`$ZY```9%E!/(\`````89AA"ITAY_
  255. XM``$``$ZY```8Z%!/+GD````,3G4@>0```!A":``$('D````8,7P``0`0(GD`&
  256. XM```8,WP``0`*('D````,(#D````,D*@`!%"`(\`````<('D````<(+Q-04Y8L
  257. XM0J=.N0``&2983R1`2JH`K&<X+RT`#"\M``@O"DZY```&UD_O``PC_`````$`+
  258. XM```@('D````8`&B````$('D````8`&B````*8%A(:@!<3KD``!F.6$](:@!<)
  259. XM3KD``!E06$\CP````"0@>0```"1*J``D9Q0@>0```"0B:``D+Q%.N0``b$
  260. XM3R\Y````)"\*3KD```KP4$\C^0```"0````H3KD``!A2('D````8((!.N0``E
  261. XM&)H@>0```!@A0``&9QI(>`/M2'H`.DZY```8BE!/('D````8(4``#"\Y````%
  262. XM*"\Y````+$ZY````!%!/0J=.N0``%DQ83TS?!`Q.74YU*@!.50``2.<\,"1M!
  263. XM`!`@;0`(("@`K.6`*``@1"`H`!#E@"9`$!-(@$C`T*T`#%2`(\`````P0J<OH
  264. XM.0```#!.N0``&1903R/`````-&8(3-\,/$Y=3G40$TB`2,`O`"!+4H@O""\YJ
  265. XM````-$ZY```(O$_O``Q(>@%P$!-(@$C`T+D````T+P!.N0``"N!03R\M``PO"
  266. XM"B\Y````-$ZY```*C$_O``Q"N0```"PF>0```#0D2Q`32(!(P"H`L+P````@?
  267. XM9R"ZO`````EG&+J\````#&<0NKP````-9PBZO`````IF!%*+8,P,$P`@;0``/
  268. XMC@P3`")F,E*+($M2BQ`02(!(P"H`9R`@2E**$(6ZO````")F$`P3`")F!%*+>
  269. XM8`9"*O__8`)@TF!$($M2BQ`02(!(P"H`9S"ZO````"!G*+J\````"6<@NKP`B
  270. XM```,9QBZO`````UG$+J\````"F<(($I2BA"%8,(@2E**0A!*A68"4XM2N0``I
  271. XM`"Q@`/\Z0A)"IR`Y````+%*`Y8`O`$ZY```9%E!/(\`````H9@I"N0```"Q@$
  272. XM`/ZL>@`F>0```#1@'B`%Y8`@>0```"@ABP@`+PM.N0``$()83U*`U\!2A;JYA
  273. XM````+&W:(`7E@"!Y````*$*P"`!@`/YJ(`!,[P,```0@""(O``Q@`A#95\G_1
  274. XM_&<&4D%@`D(84<G__$YU3E4``$CG,``O+0`,2'@#`2\M``AA#$_O``Q,WP`,0
  275. XM3EU.=4Y5``!(YS\P)&T`"$ZY```5U"9Y````&'@`8!)R!B`$3KD``!?^2K,(6
  276. XM`&<44H0P.0```M1(P+B`;>)Z!F```.H(+0`!``YG/$AX__\O"DZY```8=%!/Y
  277. XM+`!G*B\&3KD``!C*6$\O"DZY```81%A/2H!F$DZY```87"H`L+P```#-9@``+
  278. XMIDAX`^TO"DZY```8BE!/+`!*AF9R""T````.9@9Z`6```(1(>`/N+PI.N0``J
  279. XM&(I03RP`9@I.N0``&%PJ`&!F2'@`(4AZ`+!.N0``&5Y03RX`9PPO!TZY```9O
  280. XM"%A/8"9(>``!2'H`G"\&3KD``!C83^\`#$AX__]"IR\&3KD``!BZ3^\`#&`N7
  281. XM("T`#,"\```%`+"\```%`&8<+P9.N0``&"A83WH$(\4````(</],WPS\3EU.Y
  282. XM=7(&(`1.N0``%_XGA@@`<@8@!$ZY```7_B!`T<LQ;0`.``0(+0`#``YG$DAX%
  283. XM``%"IR\&3KD``!BZ3^\`#"`$8+AD;W,N;&EB<F%R>0```#`\?_]@!#`O``X@"
  284. XM;P`$2AAF_%-((F\`"%-`$-E7R/_\9P)"$"`O``1.=3`\?_]@!#`O``Y30&L4?
  285. XM(&\`!")O``BQ"68,4TA*&%?(__9P`$YU8P1P`4YU</].=2!O``0@"")O``@0-
  286. XMV6;\3G5.50``2.<^,"1M``A"ITAZ`*1.N0``&5Y03R/`````3&8(3-\,?$Y=^
  287. XM3G4@;0`,(F@`)"\I``1.N0``&;I83R@`9UI(>@!]($0O*``V3KD``!F<4$\F!
  288. XM0$J`9SA(>`/M+PM.N0``&(I03RP`9R8@!N6`*@`@125H``@`I"5&`)Q(>`/M>
  289. XM2'H`1$ZY```8BE!/)4``H"\$3KD``!FL6$\O.0```$Q.N0``&0)83T*Y````Q
  290. XM3&``_W!I8V]N+FQI8G)A<GD`5TE.1$]7`"H`3E4``$CG,`!(;0`,+RT`"$AY1
  291. XM```0E$ZY```,;D_O``Q,WP`,3EU.=4Y5``!(YS@@)&T`$`RM````!``49@@@^
  292. XM;0`(*!!@%$JM``QO""!M``@H$&`&(&T`""@00JT`%$JM``QL$D2M``Q*A&P*@
  293. XM1(0K?`````$`%"(M``P@!$ZY```0'$'Y````B%.*%+`(`"(M``P@!$ZY```0W
  294. XM*"@`9MA*K0`49P93BA2\`"T@"DS?!!Q.74YU3E7_%$CG.#`D;0`()FT`#$*MW
  295. XM__@K;0`0__P@2U*+$!!(@$C`*`!G``,\N+P````E9@`#%D(M_R(K?`````'_O
  296. XM]"M\````(/_P*WP``"<0_^P@2U*+$!!(@$C`*`"PO````"UF$$*M__0@2U*+,
  297. XM$!!(@$C`*`"XO````#!F%"M\````,/_P($M2BQ`02(!(P"@`N+P````J9AH@:
  298. XM;?_\6*W__"M0_^@@2U*+$!!(@$C`*`!@.$*M_^A@)'(*("W_Z$ZY```7_M"$\
  299. XMD+P````P*T#_Z"!+4HL0$$B`2,`H`$'Y````FP@P``)(`&;.N+P````N9F8@'
  300. XM2U*+$!!(@$C`*`"PO````"IF&B!M__Q8K?_\*U#_["!+4HL0$$B`2,`H`&`X\
  301. XM0JW_[&`D<@H@+?_L3KD``!?^T(20O````#`K0/_L($M2BQ`02(!(P"@`0?D`N
  302. XM``";"#```D@`9LXK?`````3_Y+B\````;&86($M2BQ`02(!(P"@`*WP````$&
  303. XM_^1@%+B\````:&8,($M2BQ`02(!(P"@`(`1@``""*WP````(_^!@'"M\````\
  304. XM"O_@8!(K?````!#_X&`(*WS____V_^`O+?_D2&W_(B\M_^`O+?_\3KK]I$_O@
  305. XM`!`K0/_<("W_Y-&M__Q@7"!M__Q8K?_\*U#_W"\M_]Q.N0``$()83RM`_^1@^
  306. XM2B!M__Q8K?_\*!!![?\A*TC_W!"$8"B0O````&-GXE.`9Y*0O`````MG`/]LO
  307. XM68!GLE6`9P#_;%>`9P#_<&#,0>W_(I'M_]PK2/_D("W_Y+"M_^QO!BMM_^S_?
  308. XMY$JM__1G<"!M_]P,$``M9PHB;?_<#!$`*V8T#*T````P__!F*E.M_^@@;?_<*
  309. XM4JW_W!`02(!(P"\`3I)83["\_____V8*</],WPP<3EU.=6`8+RW_\$Z26$^P"
  310. XMO/____]F!'#_8.)2K?_X("W_Z%.M_^BPK?_D;MI"K?_@8"0@;?_<4JW_W!`0@
  311. XM2(!(P"\`3I)83["\_____V8$</]@JE*M_^`@;?_<2A!G"B`M_^"PK?_L;<H@M
  312. XM+?_@T:W_^$JM__1F*F`:2'@`($Z26$^PO/____]F!G#_8`#_<%*M__@@+?_H8
  313. XM4ZW_Z+"M_^1NV&`8+P1.DEA/L+S_____9@9P_V``_TA2K?_X8`#\N"`M__A@W
  314. XM`/\X2.=(`$*$2H!J!$2`4D1*@6H&1($*1``!83Y*1&<"1(!,WP`22H!.=4CGH
  315. XM2`!"A$J`:@1$@%)$2H%J`D2!81H@`6#8+P%A$B`!(A]*@$YU+P%A!B(?2H!.R
  316. XM=4CG,`!(04I!9B!(038!-`!"0$A`@,,B`$A`,@*"PS`!0D%(04S?``Q.=4A!2
  317. XM)@$B`$)!2$%(0$)`=`_0@-.!MH%B!)*#4D!1RO_R3-\`#$YU(&\`!"`(2AAF3
  318. XM_)'`(`A3@$YU3E4``$CG,`!(>0```3(O+0`(3KD``!"V4$],WP`,3EU.=4Y59
  319. XM``!(YS@`*"T`""\M``PO!$ZY```1!%!/N+P````*9BH@;0`,$"@`#$B`2,`(=
  320. XM```'9QA(>/__+RT`#$ZY```2"E!/3-\`'$Y=3G5@]DY5``!(YS`@)&T`#"!2J
  321. XML>H`!&4<("T`","\````_R\`+PI.N@#B4$],WP0,3EU.=2!24I(0+0`+$(!(`
  322. XM@$C`P+P```#_8.).50``2.<P($'Y```!'"1(($K5_````!8O"&$46$]!^0``(
  323. XM`M2UR&7H3-\$#$Y=3G5.50``2.<X("1M``AX`"`*9@IP_TS?!!Q.74YU2BH`Z
  324. XM#&=<""H``@`,9PQ(>/__+PIA7E!/*``0*@`-2(!(P"\`3KD``!>>6$^(@`@JB
  325. XM``$`#&<,+RH`"$ZY```41EA/""H`!0`,9Q@O*@`23KD``!4,6$\O*@`23KD`7
  326. XM`!1&6$]"DD*J``1"J@`(0BH`#"`$8(1.5?_^2.<X("1M``A!^O\R(\@````X(
  327. XM""H`!``,9PIP_TS?!!Q.74YU""H``@`,9S0H$IBJ``@O!"\J``@0*@`-2(!(E
  328. XMP"\`3KD``!4^3^\`#+"$9Q`(Z@`$``Q"DD*J``1P_V"\#*W_____``QF$`BJX
  329. XM``(`#$*20JH`!'``8*)*J@`(9@HO"DZY```30EA/#&H``0`09C(;;0`/__](H
  330. XM>``!2&W__Q`J``U(@$C`+P!.N0``%3Y/[P`,L+P````!9I0@+0`,8`#_6B2J=
  331. XM``@P*@`02,#0J@`()4``!`CJ``(`#"!24I(0+0`/$(!(@$C`P+P```#_8`#_!
  332. XM*DY5``!(YS`@0?D```$<)$A**@`,9QS5_````!9!^0```M2UR&4*<`!,WP0,@
  333. XM3EU.=6#>0I)"J@`$0JH`""`*8.A.5?_\2.<P("1M``A(>`0`3KD``!0N6$\KK
  334. XM0/_\9AHU?``!`!`@"M"\````#B5```A,WP0,3EU.=35\!```$`CJ``$`#"5MM
  335. XM__P`"!`J``U(@$C`+P!.N0``%)A83TJ`9P8`*@"```Q@R$Y5``!(YS`P)'D`'
  336. XM```$8!8F4B`J``10@"\`+PI.N0``&3Y03R1+(`IFYD*Y````!$S?#`Q.74YU*
  337. XM3E4``$CG,"!!^O^^(\@````\0J<@+0`(4(`O`$ZY```9%E!/)$!*@&8*<`!,M
  338. XMWP0,3EU.=22Y````!"5M``@`!"/*````!"`*4(!@X$Y5``!(YS``+RT`"&&FT
  339. XM6$],WP`,3EU.=4Y5``!(YS`PE\LD>0````1@#B!M``A1B+'*9Q(F2B12(`IF'
  340. XM[G#_3-\,#$Y=3G4@"V<$)I)@!B/2````!"`J``10@"\`+PI.N0``&3Y03W``N
  341. XM8-1.50``2.<P('(&("T`"$ZY```7_B1`U?D````82JT`"&T4,#D```+42,`BR
  342. XM+0`(LH!L!$J29A0C_`````(````(</],WP0,3EU.=7(&("T`"$ZY```7_B!YP
  343. XM````&"\P"`!.N0``&&983TJ`9P1P`6`"<`!@SDY5``!(YS``+RT`"$ZY```86
  344. XM1%A/2H!F%DZY```87"/`````"'#_3-\`#$Y=3G5P`&#T3E4``$CG/"`H+0`(Z
  345. XM3KD``!74<@8@!$ZY```7_B1`U?D````82H1M$#`Y```"U$C`N(!L!$J29A0CE
  346. XM_`````(````(</],WP0\3EU.=3`J``3`?``#9@XC_`````4````(</]@X"\M6
  347. XM`!`O+0`,+Q).N0``&-A/[P`,*@"PO/____]F$$ZY```87"/`````"'#_8+(@)
  348. XM!6"N3E7__$CG,`!(>!``0J=.N0``&7Y03RM`__P(```,9QI*N0```"!F#"`MC
  349. XM__Q,WP`,3EU.=4ZY```6$G``8.Y.50``2.<P`$AX``1(>@`H3KD``!B:+P!.S
  350. XMN0``&-A/[P`,2'@``4ZY```63%A/3-\`#$Y=3G5>0PH`3E4``$CG,`!*N0``9
  351. XM`#AG""!Y````.$Z0+RT`"$ZY```6>%A/3-\`#$Y=3G5.5?_\2.<X`"MM``C__
  352. XM_$JY````&&<V>`!@#"\$3KD``!>>6$]2A#`Y```"U$C`N(!MZ#`Y```"U,'\4
  353. XM``8O`"\Y````&$ZY```9/E!/2KD````\9P@@>0```#Q.D$JY````0&<.+SD`S
  354. XM``!`3KD``!D(6$]*N0```$1G#B\Y````1$ZY```9"%A/2KD```!(9PXO.0``N
  355. XM`$A.N0``&0A83RQX``0(+@`$`2EG%"\-2_H`"DZN_^(J7V`&0J?S7TYS2KD`T
  356. XM```D9CA*N0```#1G+B\Y````,"\Y````-$ZY```9/E!/(#D````L4H#E@"\`J
  357. XM+SD````H3KD``!D^4$]@%$ZY```9-"\Y````)$ZY```9<%A/("W__"YY````'
  358. XM#$YU3-\`'$Y=3G5.50``2.<^("@M``AR!B`$3KD``!?^)$#5^0```!A*A&T0>
  359. XM,#D```+42,"X@&P$2I)F%"/\`````@````AP_TS?!'Q.74YU,"H`!,!\@`!FV
  360. XM"B\23KD``!@H6$]"DG``8-Y(YW``-`'$P"8!2$/&P$A#0D/4@TA`P,%(0$)`%
  361. XMT(),WP`.3G5.^0``&"@B+P`$+'D````43N[_W"(O``0L>0```!1.[O^"(B\`6
  362. XM!"QY````%$[N_[@L>0```!1.[O_*+'D````43N[_?"(O``0L>0```!1.[O\H/
  363. XM3.\`!@`$+'D````43N[_K$[Y```8BDSO``8`!"QY````%$[N_^(L>0```!1.P
  364. XM[O_$3OD``!BJ3.\`#@`$+'D````43N[_UDSO``X`!"QY````%$[N_[XB+P`$E
  365. XM+'D````43N[_IDSO``X`!"QY````%$[N_]!(YP$$3.\@@``,+'D````03J[_V
  366. XME$S?((!.=4[Y```9"")O``0L>0```!!.[OYB3.\``P`$+'D````03N[_.B)OM
  367. XM``0L>0```!!.[O[:+'D````03N[_?")O``0@+P`(+'D````03N[_+B!O``0L"
  368. XM>0```!!.[OZ,+'D````0(F\`!"`O``A.[OW8(F\`!"QY````$$[N_H9,[P`#)
  369. XM``0L>0```!!.[O[.(&\`!"QY````$$[N_H!,[P,```0L>0```$Q.[O^@(&\`@
  370. XM!"QY````3$[N_Z8@;P`$+'D```!,3N[_L@```^P````4`````0```U8```-H/
  371. XM```$"@``!,@```5$```%6@``"3````P^```-3```#;H``!">```15```$6H`S
  372. XM`!,,```3(```%+P``!5H```6H```%JP``!?"````>@`````````F````,@``"
  373. XM`$8```!D````=@```(8```"<````J````+@```#.````V@```.H```#^```!S
  374. XM@````;(```):```"?````H@```*4```#>@```\X```0"```$,```!$@```227
  375. XM```$M@``!2X```5F```%?@``!=8```7P```&(@``!BX```94```&9```!G8`'
  376. XM``:$```&G@``!KP```;&```'%```!T````=<```'<```"&````B4```)#@``3
  377. XM"2(```E0```)7@``"6@```ET```)C```":X```FZ```)S```"=H```GN```*A
  378. XM````"B````H^```*3```"FP```L$```+*```"SX```M2```+>```"X8```N49
  379. XM```+S```"](```PX```,4```#2X```V<```.9```$*@``!#*```0]```$;P`-
  380. XM`!'2```1Y@``$?(``!)2```2D@``$KH``!-4```3F```$\@``!0````4C@``4
  381. XM%*@``!3J```4^@``%1H``!4F```53```%58``!6N```5P@``%>0``!8*```6'
  382. XM)```%BP``!8Z```6:@``%I8``!:^```6Y```%OH``!<0```75```%VX``!=XF
  383. XM```7A```%[```!?R```8)```&(8``!BF```9!````'4````"```$&@``!(``Y
  384. XM``2L```$S@``!.8```3P```%&@``!6X```6&```%C@``!9@```6D```%L```+
  385. XM!;8```7"```%R```!?X```8$```&$```!C8```8\```&2```!EP```9L```&8
  386. XM<```!GP```:*```&I@``!K````:V```'!@``!PX```<<```'.@``!U0```=JR
  387. XM```'>@``!X````A&```(5```"&@```AP```(?```"(@```BB```(K@``"10`K
  388. XM``HJ```+#```"XX```N<```2'```$[0``!/6```3\```%!@``!0D```44@``V
  389. XM%'X``!2P```4U```%/```!4L```57@``%7P``!6:```5R```%?8``!96```6@
  390. XM7@``%H@``!:X```6Q@``%LX``!;6```6W@``%NP``!;T```7`@``%PH``!<X_
  391. XM```70```%T@``!=.```77```%V@``!=^```7D```%[@``!?6```8+@``&#P`?
  392. XM`!A*```85```&%X``!AL```8?```&)(``!B<```8L@``&,(``!C0```8X```^
  393. XM&/0``!D.```9'@``&2P``!DV```92```&58``!E@```9=@``&88``!F4```9[
  394. XMI```&;(``!G``````````_(```/J````M@```#`````Q````,@```#,````T:
  395. XM````-0```#8````W````.````#D```!!````0@```$,```!$````10```$9R:
  396. XM`````````'(K```````"=P```````P%W*P`````#`F$```````D!82L`````X
  397. XM"0)X```````%`7@K``````4"```````````P,3(S-#4V-S@Y86)C9&5F````5
  398. XM("`@("`@("`@,#`P,#`@("`@("`@("`@("`@("`@(""00$!`0$!`0$!`0$!`@
  399. XM0$!`#`P,#`P,#`P,#$!`0$!`0$`)"0D)"0D!`0$!`0$!`0$!`0$!`0$!`0$!!
  400. XM`4!`0$!`0`H*"@H*"@("`@("`@("`@("`@("`@("`@("0$!`0"``````````%
  401. XM`````````0`````!``````````````````````$!`````0``````````````%
  402. XM```````!`@````$`````````````````````````````````````````````$
  403. XM`````````````````````````````````````````````````````````````
  404. XM`````````````````````````````````````````````````````````````
  405. XM`````````````````````````````````````````````````````````````
  406. XM`````````````````````````````````````````````````````````````
  407. XM`````````````````````````````````````````````````````````````
  408. XM`````````````````````````````````````````````````````````````
  409. XM`````````````````````````````````````````````````````````````
  410. XM````````````````````````````````````````%``````#\@```^L````4+
  411. X$```#\@``U
  412. X``
  413. Xend
  414. Xsize 8464
  415. END_OF_FILE
  416. if test 11887 -ne `wc -c <'ftos.uu'`; then
  417.     echo shar: \"'ftos.uu'\" unpacked with wrong size!
  418. fi
  419. # end of 'ftos.uu'
  420. fi
  421. echo shar: End of archive 1 \(of 1\).
  422. cp /dev/null ark1isdone
  423. MISSING=""
  424. for I in 1 ; do
  425.     if test ! -f ark${I}isdone ; then
  426.     MISSING="${MISSING} ${I}"
  427.     fi
  428. done
  429. if test "${MISSING}" = "" ; then
  430.     echo You have the archive.
  431.     rm -f ark[1-9]isdone
  432. else
  433.     echo You still need to unpack the following archives:
  434.     echo "        " ${MISSING}
  435. fi
  436. ##  End of shell archive.
  437. exit 0
  438. -- 
  439. Mail submissions (sources or binaries) to <amiga@cs.odu.edu>.
  440. Mail comments to the moderator at <amiga-request@cs.odu.edu>.
  441. Post requests for sources, and general discussion to comp.sys.amiga.
  442.